The Clean Architectureの右下の図
https://gyazo.com/f99f84089a0cf9127ed0956770435066
図の矢印の意味
A→BのときAがBを継承する
黒矢印
A→Bのとき、A中でBを使用する
code:関係のイメージ.ts
interface InputPort {..}
interface OutputPort {..}
class UseCaseInteractor extends InputPort { // InputPortを継承
method(o: OutputPort) { // OutputPortを使用
o.get();
}
}
class Presenter extends OutputPort{..} // OutputPortを継承
class Controller {
method(i: InputPort) { // InputPortを使用
i.get();
}
}
何も考えずに実装するとこうなる
https://gyazo.com/7105353e57b898fa93ad70f97af6610b
しかしこれでは、内側が外側に依存することになるのでどうにしかして避けたい
https://gyazo.com/5de08e64bb318f3b36c9a10e57213fdc
最初の方の図の矢印の向きはこれ良いのかな
Input/Output Portはインターフェースだが、それの実装をどこでするのか